package com.src.computec.facturacion.base.constantes;

import com.src.computec.facturacion.source.FacturacionSource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Jose Luis Perea
 */

public class ConstantesGenerales {
    
    protected static ConstantesGenerales instance;
    
    public static String FACTORYDAO_CLASSNAME;
    public static String SCHEMA;
        
    public static String PATH_ARCHIVOS_ALERTAS;
    public static String CODIGO_TIPO_PROVEEDOR_MENSAJERIA;
    public static String CODIGO_DANE_VACIO;
    
    public static SimpleDateFormat STRING_DATE_FORMAT;
    
    public static String IDS_GESTIONES_YA_DISTRIBUIDOS;
    
    public static String ID_TIPO_GESTION_EN_PROCESO;
    public static String ID_TIPO_GESTION_RETENCIONES;
    
    public static String ID_GESTION_RETENCION_ILOCALIZABLE;
    public static String IDS_GESTION_PUEDE_RETENER;
    ///////////////////////////////////////////////////////////////
    public static String IDS_NODOS_DEFAULT;    
    public static String ID_NODO_NACIONAL;    
    public static String ID_NODO_APARTADOS_AEREOS;
    ///////////////////////////////////////////////////////////////
    
    public static String CODIGO_DEPTO_DISTRITOCAPITAL;
    public static String CODIGO_MUNICIPIO_BOGOTA;
    public static String CODIGO_CENTROP_BOGOTA;
    
    public static String FILE_CODE;
    public static String FILE_SOURCE_FACTURACION;
    public static String FILE_ACTIVE;
    public static String DESCRIPCION_MENSAJE_ALERTA_CONSECUTIVOS;
    
    
    protected ConstantesGenerales() {       
        FacturacionSource facturacionSource = FacturacionSource.getInstance();
        
        this.FACTORYDAO_CLASSNAME       = facturacionSource.getFacturacionSetupKey("DaoFactoryClassName");  
        this.SCHEMA                     = facturacionSource.getFacturacionSetupKey("schema");  
        
        this.CODIGO_TIPO_PROVEEDOR_MENSAJERIA = facturacionSource.getFacturacionSetupKey("codigoTipoProveedorMensajeria");        
        this.CODIGO_DANE_VACIO          = facturacionSource.getFacturacionSetupKey("codigoVacioCodigoDane");  
        this.PATH_ARCHIVOS_ALERTAS      = facturacionSource.getFacturacionSetupKey("pathArchivosAlertas");
        
        this.STRING_DATE_FORMAT         = new SimpleDateFormat(facturacionSource.getFacturacionSetupKey("dateFormatString"));
        
        this.IDS_GESTIONES_YA_DISTRIBUIDOS = facturacionSource.getFacturacionSetupKey("IdsGestionYaDistribuidos");//Es una cadena separada por comas
        
        this.ID_TIPO_GESTION_EN_PROCESO     = facturacionSource.getFacturacionSetupKey("IdTipoGestionEnProceso");        
        this.ID_TIPO_GESTION_RETENCIONES    = facturacionSource.getFacturacionSetupKey("IdTipoGestionRetenciones");  
        
        this.ID_GESTION_RETENCION_ILOCALIZABLE  = facturacionSource.getFacturacionSetupKey("IdGestionRetencionIlocalizable");
        this.IDS_GESTION_PUEDE_RETENER          = facturacionSource.getFacturacionSetupKey("IdsGestionPuedeRetener");
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        this.IDS_NODOS_DEFAULT          = facturacionSource.getFacturacionSetupKey("IdsNodosDefault");//Es una cadena separada por comas
        this.ID_NODO_NACIONAL           = facturacionSource.getFacturacionSetupKey("IdNodoNacional");
        this.ID_NODO_APARTADOS_AEREOS   = facturacionSource.getFacturacionSetupKey("IdNodoApartadosAereos");        
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        this.CODIGO_DEPTO_DISTRITOCAPITAL   = facturacionSource.getFacturacionSetupKey("codigoDeptoDistritoCapital");
        this.CODIGO_MUNICIPIO_BOGOTA        = facturacionSource.getFacturacionSetupKey("codigoMunicipioBogota");
        this.CODIGO_CENTROP_BOGOTA          = facturacionSource.getFacturacionSetupKey("codigoCentroPBogota");  
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	this.FILE_CODE=facturacionSource.getFacturacionSetupKey("fileCode");
	this.FILE_SOURCE_FACTURACION=facturacionSource.getFacturacionSetupKey("fileSourceFac");
	this.FILE_ACTIVE=facturacionSource.getFacturacionSetupKey("fileActive");
	this.DESCRIPCION_MENSAJE_ALERTA_CONSECUTIVOS=facturacionSource.getFacturacionSetupKey("descMensajeAlertaConsecutivos");
    }
    
    public static ConstantesGenerales getInstance() {
        if (instance == null) {
            instance = new ConstantesGenerales();
        }
        return instance;
    }
}